package com.danton.user.service;

import java.util.List;

import com.danton.model.BsPermissionModel;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;

/**
 * 权限业务接口
 * @author sunyuxing
 *
 */
public interface PermissionService {
	/**
	 * 查询所有的模块列表
	 * @return list
	 */
	public List<Record> listAllModule();
	/**
	 * 通过模块查询权限
	 * @return list
	 */
	public List<BsPermissionModel> listAllPermissionByModule(String module);
	/**
	 * 查询角色已有的模块列表
	 * @return list
	 */
	public List<Record> listRoleModule(int role_id);
	/**
	 * 通过角色查询权限
	 * @return list
	 */
	public List<BsPermissionModel> listRolePermissionByModule(int role_id,String module);
	/**
	 * 判断唯一性
	 * @param persission_id：权限id
	 * @param description： 权限描述，权限名称
	 * @return true:存在,false:不存在
	 */
	public boolean findByIDAndName(String description,String persission_id);
	/**
	 * 通过description查询id
	 * @param description： 权限描述，权限名称
	 * @return 权限ID
	 */
	public String findId(String description);
	/**
	 * 权限列表
	 * @param pageNumber
	 * @param pageSize
	 * @return
	 */
	public Page<BsPermissionModel> list(int pageNumber, int pageSize);
	
	/**
	 * 新增权限
	 * @param permissionModel
	 * @return
	 */
	public boolean add(BsPermissionModel permissionModel);
	
	/**
	 * 修改权限
	 * @param permissionModel
	 * @return
	 */
	public boolean edit(BsPermissionModel permissionModel);
	
	/**
	 * 根据角色查找权限(返回结果为权限表和角色权限关联表所有字段)
	 * @param role_id
	 * @return
	 */
	public List<BsPermissionModel> findByRoleID(int role_id);
	/**
	 * 根据角色查找权限(返回结果只有权限表)
	 * @param role_id
	 * @return
	 */
	public List<BsPermissionModel> findRoleID(int role_id);
}
